#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/wait.h>
#include<pthread.h>
#include<unistd.h>
#include<fcntl.h>
#include<arpa/inet.h>
#include<ctype.h>
#include<sys/socket.h>
//基于tcp实现服务器的通信实现
#define SERV_PORT 9527
void sys_error(const char*s){
      perror(s);
      exit(-1);
}
int main(){
   int sfd,cfd;
   char buf[BUFSIZ];
   //将地址结构绑定好本机ip地址 port端口
   struct sockaddr_in serv_addr,client_addr;
   serv_addr.sin_family=AF_INET;
   serv_addr.sin_port=htons(SERV_PORT);//将字节序改为网络字节序                             
   serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);//取出系统中有效的ip地址
   sfd=socket(AF_INET,SOCK_STREAM,0);//创建套接字
   if(sfd==-1){
      sys_error("socket is error");
   }
   bind(sfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));//绑定IP和port
   listen(sfd,128);//设置监听上线
   socklen_t client_addr_len=sizeof(client_addr);
   cfd=accept(sfd,(struct sockaddr*)&client_addr,&client_addr_len);//阻塞等待客户端建立连接
   if(cfd==-1){
     sys_error("accept connection error");
   }
   while(1){
     int siz=read(cfd,buf,sizeof(buf));
     write(STDOUT_FILENO,buf,siz);
     int i;
     for(i=0;i<siz;i++){
        buf[i]=toupper(buf[i]);
     }
     write(cfd,buf,siz);
    }
   return 0;
}
